package com.totsp.crossword;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import com.totsp.crossword.shortyz.R;
@SuppressWarnings("SetJavaScriptEnabled")
public class WebBrowserActivity extends ShortyzActivity {
private EditText mURL;
private InputMethodManager mIMM;
private PuzzleDownloadListener mPDL;
private WebView mWebView;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.web_browser_view);
(findViewById(R.id.close)).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// This tells the download picker to close itself.
WebBrowserActivity.this.setResult(RESULT_OK);
WebBrowserActivity.this.finish();
}
});
mWebView = (WebView) findViewById(R.id.webview);
final WebSettings webSettings = mWebView.getSettings();
webSettings.setBuiltInZoomControls(true);
webSettings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
webSettings.setJavaScriptEnabled(true);
webSettings.setLightTouchEnabled(true);
mPDL = new PuzzleDownloadListener(this);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".puz")) {
// Misconfigured server not reporting download - start it anyway.
mPDL.onDownloadStart(url, webSettings.getUserAgentString(), null, null, 0);
return true;
}
view.loadUrl(url);
mURL.setText(url);
return true;
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
WebBrowserActivity.this.setProgress(progress * 100);
}
});
mWebView.setDownloadListener(mPDL);
mIMM = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mURL = (EditText) findViewById(R.id.url);
mURL.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
String url = mURL.getText()
.toString();
if (!url.contains("://")) {
mURL.setText("http://" + url);
}
mWebView.loadUrl(mURL.getText().toString());
mIMM.hideSoftInputFromWindow(mURL.getWindowToken(), 0);
return true;
}
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}